import Events from 'events'

class SvcManager extends Events.EventEmitter {
  /// //////////////////////////////////////////////////////////////
  //
  //
  /// //////////////////////////////////////////////////////////////
  constructor () {
    super()

    this._services = {}
  }

  /// //////////////////////////////////////////////////////////////
  //
  //
  /// //////////////////////////////////////////////////////////////
  registerService (svc) {
    this._services[svc.name()] = svc

    this.emit('service.register', svc)
  }

  /// //////////////////////////////////////////////////////////////
  //
  //
  /// //////////////////////////////////////////////////////////////
  getService (name) {
    if (this._services[name]) {
      return this._services[name]
    }

    return null
  }
}

const TheSvcManager = new SvcManager()

export default TheSvcManager
